home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / octa209s.zip / octave-2.09 / libcruft / lapack / zlaset.f < prev    next >
Text File  |  1996-07-19  |  3KB  |  116 lines

  1.       SUBROUTINE ZLASET( UPLO, M, N, ALPHA, BETA, A, LDA )
  2. *
  3. *  -- LAPACK auxiliary routine (version 2.0) --
  4. *     Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
  5. *     Courant Institute, Argonne National Lab, and Rice University
  6. *     October 31, 1992
  7. *
  8. *     .. Scalar Arguments ..
  9.       CHARACTER          UPLO
  10.       INTEGER            LDA, M, N
  11.       COMPLEX*16         ALPHA, BETA
  12. *     ..
  13. *     .. Array Arguments ..
  14.       COMPLEX*16         A( LDA, * )
  15. *     ..
  16. *
  17. *  Purpose
  18. *  =======
  19. *
  20. *  ZLASET initializes a 2-D array A to BETA on the diagonal and
  21. *  ALPHA on the offdiagonals.
  22. *
  23. *  Arguments
  24. *  =========
  25. *
  26. *  UPLO    (input) CHARACTER*1
  27. *          Specifies the part of the matrix A to be set.
  28. *          = 'U':      Upper triangular part is set. The lower triangle
  29. *                      is unchanged.
  30. *          = 'L':      Lower triangular part is set. The upper triangle
  31. *                      is unchanged.
  32. *          Otherwise:  All of the matrix A is set.
  33. *
  34. *  M       (input) INTEGER
  35. *          On entry, M specifies the number of rows of A.
  36. *
  37. *  N       (input) INTEGER
  38. *          On entry, N specifies the number of columns of A.
  39. *
  40. *  ALPHA   (input) COMPLEX*16
  41. *          All the offdiagonal array elements are set to ALPHA.
  42. *
  43. *  BETA    (input) COMPLEX*16
  44. *          All the diagonal array elements are set to BETA.
  45. *
  46. *  A       (input/output) COMPLEX*16 array, dimension (LDA,N)
  47. *          On entry, the m by n matrix A.
  48. *          On exit, A(i,j) = ALPHA, 1 <= i <= m, 1 <= j <= n, i.ne.j;
  49. *                   A(i,i) = BETA , 1 <= i <= min(m,n)
  50. *
  51. *  LDA     (input) INTEGER
  52. *          The leading dimension of the array A.  LDA >= max(1,M).
  53. *
  54. *  =====================================================================
  55. *
  56. *     .. Local Scalars ..
  57.       INTEGER            I, J
  58. *     ..
  59. *     .. External Functions ..
  60.       LOGICAL            LSAME
  61.       EXTERNAL           LSAME
  62. *     ..
  63. *     .. Intrinsic Functions ..
  64.       INTRINSIC          MIN
  65. *     ..
  66. *     .. Executable Statements ..
  67. *
  68.       IF( LSAME( UPLO, 'U' ) ) THEN
  69. *
  70. *        Set the diagonal to BETA and the strictly upper triangular
  71. *        part of the array to ALPHA.
  72. *
  73.          DO 20 J = 2, N
  74.             DO 10 I = 1, MIN( J-1, M )
  75.                A( I, J ) = ALPHA
  76.    10       CONTINUE
  77.    20    CONTINUE
  78.          DO 30 I = 1, MIN( N, M )
  79.             A( I, I ) = BETA
  80.    30    CONTINUE
  81. *
  82.       ELSE IF( LSAME( UPLO, 'L' ) ) THEN
  83. *
  84. *        Set the diagonal to BETA and the strictly lower triangular
  85. *        part of the array to ALPHA.
  86. *
  87.          DO 50 J = 1, MIN( M, N )
  88.             DO 40 I = J + 1, M
  89.                A( I, J ) = ALPHA
  90.    40       CONTINUE
  91.    50    CONTINUE
  92.          DO 60 I = 1, MIN( N, M )
  93.             A( I, I ) = BETA
  94.    60    CONTINUE
  95. *
  96.       ELSE
  97. *
  98. *        Set the array to BETA on the diagonal and ALPHA on the
  99. *        offdiagonal.
  100. *
  101.          DO 80 J = 1, N
  102.             DO 70 I = 1, M
  103.                A( I, J ) = ALPHA
  104.    70       CONTINUE
  105.    80    CONTINUE
  106.          DO 90 I = 1, MIN( M, N )
  107.             A( I, I ) = BETA
  108.    90    CONTINUE
  109.       END IF
  110. *
  111.       RETURN
  112. *
  113. *     End of ZLASET
  114. *
  115.       END
  116.